#ifndef PARSER_H__
#define PARSER_H__

#include "json.h"
namespace Asukai
{
    namespace json
    {
        class Json;
        class Parser
        {
        public:
            Parser();
            void load(const std::string &str);
            Json parse();

        private:
            void skip_write_space();
            char get_next_token();

            Json parse_null();
            Json parse_bool();
            Json parse_number();
            std::string parse_string();
            Json parse_array();
            Json parse_object();

            std::string m_str;
            size_t m_idx;
        };
    }
}

#endif